package pl.kosmowska.ewelina.client.views;

import java.util.Date;
import java.util.List;

import pl.kosmowska.ewelina.client.app.requestfactory.dto.OutcomeDataProxy;

import com.google.gwt.place.shared.Place;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.view.client.ListDataProvider;

public interface OutcomeView extends IsWidget {

	interface Presenter {
		void goTo(Place place);

		void loadDataForOutcomeView(Date startDate, Date endDate);

		void loadDataForOutcomeView();

		void deleteSingleOutcome(OutcomeDataProxy selectedItem);

		void deleteFollowingMultipleOutcome(OutcomeDataProxy selectedItem);
		
		void deleteAllMultipleOutcome(OutcomeDataProxy selectedItem);

		void deleteSavingsPlan(String sponsoredOutcomeDataId);

		void reInitSavingsPlan(OutcomeDataProxy outcomeDataProxy);

		void goToNewOutcomePlace();

		void goToOutcomeEditPlace(OutcomeDataProxy selectedItem);
	}
	

	void setPresenter(Presenter presenter);

	void updateAfterOutcomeDelete(OutcomeDataProxy outcomeDataProxy);

	void updateAfterOutcomeDelete(List<OutcomeDataProxy> deletedList);

	void updateGrid(List<OutcomeDataProxy> followingOutcomeList,
			List<OutcomeDataProxy> returnedOutcomeData);

	boolean isAlreadyInit();

	void setAlreadyInit(boolean alreadyInit);

	void showMessage(String message);

	void reInitView(List<OutcomeDataProxy> returnedOutcomeData);

	void clearView();

}
